package org.fjsei.yewu.pojo.sei;
import lombok.*;
import lombok.experimental.Accessors;

//前端的检验报告内容JSON对应内部详细字段：所有的和本次检验活动有关的字段（填充给报告和其原始记录的），快照后不会随着时间流逝而变化了。需支持全部设备类别和业务类型。
//仅供服务端使用，非DB表实体的。但是从数据库字段转换，然后转输出变JSON发给前端，需要类比JPA数据库5种基本类型。
//提供前端，但是字段若是null的如何合并 能够理解？
//前端出检验报告的设备基础信息： 【很闹腾】本该前端做的事情。为了安全考虑。
/**
 *不能用@Builder(toBuilder=true)   错误【根源，限制】: 类的字段数 过多的,自动生成的构造器函数()>256个参数。
 * 原来 @Builder(toBuilder=true) 的代码： 一个构造器 IspTzFieldSnapshot(,, ...) 函数需要太多的参数。
 * 另外一思路：手动实现Builder模式：但一个参数也需要5个地方需手动都加代码，可维护性差。 还是省点事直接用lombok.*工具，就是源代码的代码字节体量会大多了，
 * 用Accessors【缺点】自动生成代码行数大多了，有些方法似乎对我这也没用的，所以不如自己手动实现Builder的代码量小。
 * */
@Data
@Accessors(chain = true)
public class IspTzFieldSnapshot {
    private String eqpcod;
    //检验日期 改成报告原始记录来做配置的。 Isp.ispDate是报告终结后绕道监察平台过手报告再回来反馈给后端的或一次性报送监察; “检验日期”是主报告的特殊字段。
    private String 监察识别码;    //OIDNO;
    private String 使用证号;     //'使用证号'
    private String 设备代码;     //'设备代码
    private String 设备品种;            //'设备名称'=品种    EQP_VART_NAME
    private String 设备类别;        //设备类别  EQP_SORT_NAME
    private String 子设备品种;       //subv
    private String 设备名称;    //EQP_NAME BOX_NAME
    private String 型号;      //型号'
    private String 出厂编号;     //出厂编号；产品编号
    private String 单位内部编号;     //单位内部编号'
    private String  制造日期;   //制造日期
    private String  使用单位;
    private String  使用单位地址;     //USE_UNT_ADDR
    private String  使管部类型;
    private String  分支机构;
    private String  分支机构地址;
    private String  制造单位;
    private String  制造单位地址;
    private String  改造单位;
    private String  维保单位;
    private String  楼盘;
    private String  楼盘地址;
    private String  楼盘性质;
    private String  安装单位;
    private String  使用单位信用码;
    private String  使用单位电话;         //联系电话， 但是没单独编辑“手机”
    private String  使用单位邮编;
    private String  单位联系人;       //使用单位 #但区别于“设备联系人”
    private String  注册代码;
    private String  维修单位;
    private String  产权单位;
    private String  产权单位地址;
    private String  制造国;
    private String  服务单位;
    //安全管理人员
    //private String  改造日期;    //改造日期'        ??台账没有啊，手动输入？  安管人员，报告个性化输入
    private String  下检日期;     //下次检验日期2 (机电定检，内检，全面）：
//    private String  下年检日期;     //下次检验日期1 （在线、年度）粗的检
                 //nxttd  下次需要检测的截至日
    private String  设备使用地点;
    private String  使用地区域;
    private String  设计年限;       //设计使用年限
    private String  投用日期;
    private String  检验类别;       //对应isp. bsType 的类型
    private String  设备联系手机;
    private String  设备联系人;          //pam.*
    private String  进口类型;
    private String  设备等级;    //管道级别; 游乐;
    private String  额定速度;        //升降机的额定速度；游乐;
    private String  使用到期时;        //游乐;
    private String 主机功率;      //游乐; 厂车
//以下是特定设备类别才有的字段：
    private String  工作压力;            //容器的 锅炉的
    private String  防爆标志;       //电梯 起重;
    private String  防爆等级;    //电梯 厂车的
    private String 上路号牌;     //厂车的  常压容器 起重;
    //'控制方式@[{id:''按钮'',text:''按钮''},{id:''信号'',text:''信号''},{id:''集选'',text:''集选''},{id:''并联'',text:''并联''},{id:''群控'',text:''群控''}]'
    private String 工作介质;    //容器的 锅炉的
    private String  提升高度;
    //电梯的：
    private String 控制方式;
    private Long 电梯层数;     //'电梯层数'
    private Long 电梯站数;     // '电梯站数'
    //类型不对； private int 电梯门数;     数据库可能为null?
    private Long 电梯门数;       // is '电梯门数'
    private String  运行速度;      //Double不好用 运行速度(Double.valueOf(String.valueOf(device.getVl())))
    private String  额定载荷;      //Double   is '额定载荷(kg) .
    private String  名义宽度;
    private String  倾斜角度;
    private String  使用区长度;
    private String  限速器型号;  //限速器型号  #轿厢-   升降机也有
    private String  限速器编号;   //限速器出厂编号:     升降机也有
    private String  限速上电气速;  //轿厢上行限速器电气动作速度:
    private String  限速上机械速;  //轿厢上行限速器机械动作速度:
    private String  限速下电气速;  //轿厢下行限速器电气动作速度:
    private String  限速下机械速;  //轿厢下行限速器机械动作速度:
    private String  对限速型号;  //对重限速器型号:
    private String  对限速编号;  //对重限速器编号:
    private String  开门方式;
    private String  控制屏型号;
    private String  控制屏编号;
    private String  曳引机型号;
    private String  曳引机编号;
    private String  电动机型号;
    private String  层门型号;
    private String  上行保护型号;     //上行超速保护装置型号
    private String  意外保护型号;     //轿厢意外移动保护装置型号
    private String  缓冲器型号;
    private String  缓冲器形式;
    private String  对重块数量;
    private String  轿厢装修;
    private String  主机型号;
    private String  主机编号;
    private String  钢丝绳直径;
    private String  顶升形式;
    private String  油缸数量;
    private String  油缸形式;
    private String  液泵型号;
    private String  液泵编号;
    private String  液泵流量;
    private String  液泵功率;
    private String  附加装置;    //加装附加装置 aap
    private Boolean  是公共交通;
    private String  额定速度上;
    private String  额定速度下;
    //起重机械的： (有些和电梯同名字)
    private String  跨度;
    private String  额定起重量;    //升降机没有这个，  升降机:额定载重=rtlf=额定载荷;
    private String  生产率;
    private String  工作级别;
    private String  起升速;
    private String  速度;         //类比 运行速度 数据类型不同的。
    private String  小车速度;
    private String  大车速度;
    private String  附属装置名称;
    private String  易燃易爆物;
    private String  场所防爆级;
    private String  主升1额起量;
    private String  主升2额起量;
    private String  副升1额起量;
    private String  副升2额起量;
    private String  停车起升式;
    private String  泊位数量;     //pnum
    private String  额升降速度;
    private String  适停车质量;
    private String  适停尺寸;
    private String  最大进出时;
    private String  起升副额起;
    private String  悬臂长1;
    private String  悬臂长2;
    private String  起重力矩;
    private String  回转速度;
    private String  动力系统;
    private String  变幅速度;
    private String  最大工作幅;
    private String  最小工作幅;
    private String  检工作幅度;      //检验时最大工作幅度
    private Boolean  有监控;
    private String  独立高度;
    private String  变幅形式;
    private String  移动类型;
    private String  臂架铰点高;      //检验时起重臂架铰点高度
    private String  导梁支承跨度;
    private String  额定承载量;
    private String  主升吊具型;
    private String  检验时吊具;
    private String  主起悬挂部件;
    private String  监控系统生产单;
    private String  监控系统编号;
    private String  监控系统型号;
    private String  下降深度;
            //升降机特有
    private String  导轨架高度;
    private String  检对重数量;      //检验时对重数量； 不是：对重块数量；
    private String  检附墙架数;
    private String  防坠安器型;
    private String  防坠安器编;
    private String  安全钳型号;
    private String  安全钳编号;
    private String  工作方式;    //升降机才有  ；起重有 操作方式(桥门) "opm"
    private String  使用环境;    //升降机才有  ：起重有”工环境“
    private String  吊笼数量;
    private String  开关门驱动式;
    //容器的：
    private String  主体结构;
    private String  运行状态;
    private String  内径;
    private String  许工作温;
    private String  设计压力;
    private String  许工作压力;
    private Boolean  是换热;
    private String  容积换热;       //vol
    private String  设计单位;
    private String 产品标准;
    private String 设计日期;
    private String 设计图号;
    private String 安装型式;    //mont
    private String 保温绝热方式;    //insul
//    private String 主体结构型式;  .主体结构(svp.get结构())          @@重复定义啊
    private String 支座型式;
    private String  外形高长;       //highs 高/长
    private String  罐外形长;
    private String  允许充装量;
    private String 壳程设计压力;
    private String 壳程使用压力;
    private String 管程设计压力;
    private String 管程使用压力;
    private String 夹套设计压力;
    private String 夹套使用压力;
    private String 壳程设计温度;
    private String 壳程使用温度;
    private String 管程设计温度;
    private String 管程使用温度;
    private String 夹套设计温度;
    private String 夹套使用温度;
    //容器的温度字段太多了：就缺没有”设计温度“；
    private String 腐蚀裕量;
    private String 筒体腐裕度;
    private String 封头腐裕度;
    private String 壳程介质;
    private String 夹套介质;        //jakm
    private String 管程介质;
    private String 筒体材质;
    private String 封头材质;
    private String 夹套材质;
    private String 衬里材质;
    private String 筒体厚度;
    private String 封头厚度;
    private String 夹套厚度;
    private String 衬里厚度;
    private String 设计规范;
    private String 压力表量程;
    private String 压力表精度;
    private String 公称壁厚;
    private String 设计介质;
    private String 许工作介质;
    private String 工作温度;
    private String 外筒体厚度;
    private String 外封头厚度;
    private String 外筒体材质;        //缺少: 外壳封头材质
    private String 运输证号;
    private String 车辆类型;
    private String 车架号;
    private String 外形尺寸;
    private String 盛装介质;
    private String 氧舱人数;
    private String 人均舱容;        //用的svp?.人均 而不是?.人均容;
    private String 舱体设计压;
    private String 容器规格;
    //厂车的：
    private String 底盘编号;
    private String 发动机号;
    private String 自重量;
    private String 传动方式;         //升降机也有；
    private String 动力方式;
    private String 最大升高;
    private String 最大行驶坡度;
    private String 最大行驶速度;
    private String 后轮轮距;
    private String 前轮轮距;
    private String 车厢数;
    private String 车厢座位数;
    private String 车头座位数;
    /**以下是计费用的 业务配置信息提取的字段 */
    //安全阀 F :
    private String 公称压力;
    private String 公称通径;
    //管道： titl设备名称= 装置名称
    private String  管道设备名;      //管道名称
    //锅炉的：
    private String  加热方式;
    private String 燃料种类;
    private String 额定蒸发量;
    private String  额定压力;
    private String 额定温度;
    private String 出口温度;
    private String 回流温度;
    private String 设计出口压力;
    private String 介质名称;
    private String 介质牌号;
    private String 介质化验日;
    private String 耐压试验压;
    private String 耐压试验日;
    private String  再热蒸汽流量;
    private String 锅筒工作压力;
    private String 过热器出口压;
    private String 过热器出口温;
    private String 再热出口压力;
    private String 再热出口温度;
    private String 再热入口压力;
    private String 再热入口温度;
    private String 给水压力;
    private String 给水温度;
    private String 额定出力;
    private String 介质出口温度;
    private String 燃烧方式;
    private String 燃烧设备;
    private String 水循环式;
    private String 水处理式;
    private Boolean  有过热器;
    private String 蒸汽用途;
    private String 水处设备型;
    private String 水处设运行;
    private String 水处设制单;
    private String 制水能力;
    private String 除氧方式;
    //游乐设施：
    private String 额定载人;
    private String 额定乘客数;
    private String 倾角坡度;
    private String 回转直径;
    private String 座舱高度;
    private String 驱动形式;
    private String 额定电压;
    private String  副功率;
    private String  副速度;
    private String 水滑梯高度;
    private String 车道轨距;
    private String 轨道长度;
    private String 轨道高度;
    //private String  运行高度;       //=提升高度
    private String 车场面积;
    private String 车船数量;
    private String 滑道种类;
    private String 线路高差;
    private String 承载索根数;
    private String 滑索道数;
    private String 滑索长度;
    private String 回收装置;
}
